Location estimation of social network users

ABSTRACT

Various embodiments relate to estimating the location of social network users. In one embodiment, a plurality of social media messages generated by a given user is received. A plurality of location features is extracted from the social media messages. Each of the location features is processed with at least one classifier from an ensemble of classifiers. A location classification is generated by each of the classifiers for each of the social media messages. Each classification comprises a location and a weight associated with that location. Once of the locations is selected from the location classifications as the location of the given user based on a combination of the weights of the location classifications.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of and claims priority from U.S.patent application Ser. No. 13/487,855 filed on Jun. 4, 2012,

now ______; the entire disclosure is herein incorporated by reference inits entirety

BACKGROUND

The present invention generally relates to location estimation, and moreparticularly relates to estimating the location of users based on socialnetworking messages.

Recent years have seen a rapid growth in social network services andsocial network messaging. This has spurred numerous research efforts tomine data from social networking messages for various applications, suchas event detection, epidemic dispersion, and news recommendation. Theseand many other applications can benefit from information about thelocation of users. However, location data associated with socialnetworking messages is currently very sparse or even non-existent.

BRIEF SUMMARY

In one embodiment a method is disclosed. The method comprises receivinga plurality of social media messages generated by a given user. Aplurality of location features is extracted from the social mediamessages. Each of the location features is processed with at least oneclassifier from an ensemble of classifiers. A location classification isgenerated by each of the classifiers for each of the social mediamessages. Each classification comprises a location and a weightassociated with that location. Once of the locations is selected fromthe location classifications as the location of the given user based ona combination of the weights of the location classifications.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

The accompanying figures where like reference numerals refer toidentical or functionally similar elements throughout the separateviews, and which together with the detailed description below areincorporated in and form part of the specification, serve to furtherillustrate various embodiments and to explain various principles andadvantages all in accordance with the present invention, in which:

FIG. 1 is a block diagram illustrating an operating environmentaccording to one embodiment of the present invention;

FIG. 2 is a block diagram showing statistical classifiers according toone embodiment of the present invention;

FIG. 3 shows examples of social networking messages according to oneembodiment of the present invention;

FIG. 4 shows local features identified from social network messagesaccording to one embodiment of the present invention;

FIG. 5 is a block diagram showing heuristic classifiers according to oneembodiment of the present invention;

FIG. 6 is a graph illustrating an example of average messaging volumeper user for each hour of the day in the four time zones of the UnitedStates that is used in one embodiment of the present invention;

FIG. 7 is a graph illustrating variations of standard deviations ofmessaging volumes across time zones that is used in one embodiment ofthe present invention;

FIG. 8 is a block diagram illustrating an ensemble of classifiersaccording to one embodiment of the present invention;

FIG. 9 is a block diagram illustrating a hierarchical ensemble ofclassifiers according to one embodiment of the present invention;

FIG. 10 is an operational flow diagram illustrating a process fordetermining the location of social network users according to oneembodiment of the present invention; and

FIG. 11 is a block diagram illustrating an information processing systemthat can be utilized in embodiments of the present invention.

DETAILED DESCRIPTION

FIG. 1 shows an operating environment 100 applicable to embodiments ofthe present invention. As shown, one or more user systems 102 arecommunicatively coupled to one or more networks 104. Examples of userdevices 102 are laptop computers, notebook computers, personalcomputers, tablet computing devices, wireless communication devices,Personal Digital Assistants, gaming units, and the like. The network(s)104, in this embodiment, is a wide area network, local area network,wired network, wireless network, and/or the like.

One or more social network servers 106 and at least one location server108 are also communicatively coupled to the network 104. The socialnetwork servers 106 provide one or more social networking services(and/or environments) 110 to users of the user devices 102. Examples ofa social networking service/environment 110 are a micro-blogging serviceand a social networking website. Users access the social networkingservice 110 via an interface 112 such as a web browser or an applicationprogramming interface (API). For example, a user is able to submitsocial networking messages such as micro-blogs and wall posts to thesocial networking service 106 via the interface 112.

The location server 108 includes a location estimator 114 for estimatingthe location of users based on their social networking messages 116. Inthis embodiment, the location estimator 114 estimates or determines thehome locations of these users at different granularities (e.g., country,city, state, time zone, and/or geographic region) using the content oftheir social networking messages and their social network messagingbehavior. A user's “home” location refers to the location in which theuser lives/resides at one or more granularities (with the terms “homelocation”, “primary location”, and “location” being usedinterchangeably). The location estimator 114 retrieves/receives socialnetworking messages 116 from the social networking service 110. In thisembodiment, the location estimator 114 obtains social networkingmessages 116 using various mechanisms such as an API provided by thesocial networking service 110 that allows the location estimator 114 toreceive streams of social networking messages from the service 110.

The location estimator 114 comprises a message preprocessor 118, one ormore statistical classifiers 120, heuristic classifiers 122,behavior-based classifiers 124, and one or more predictabilityclassifiers 126. Various examples of classifiers are Naïve Bayes, NaïveBayes Multimonial, Sequential Minimal Optimization (SMO) (a SupportVector Machine (SVM) implementation), J48, PART, and Random Forest. Themessage preprocessor 118 extracts various location features (alsoreferred to as “features” or “terms”) from the social networkingmessages 116 generated by one or more given users and passes thesefeatures (terms) to the corresponding classifiers 120, 122, 124, and126. The statistical, heuristic, and behavior-based classifiers 120,122, and 124 analyze these features and output a location of the user.In this embodiment, one or more of the statistical classifiers 120utilize geographical data 128 when performing a location determiningprocess. One example of geographical data is the names of countries,states/territories, cities, counties, and the like. The geographicaldata 128 is manually entered by human users and/or is obtained fromsources such as the United States Geological Survey (USGS) gazetteer.The predictability classifier 126 analyzes the features extracted for agiven statistical classifier and the statistical model of a givenclassifier 120, 122, and 124 to determine whether or not the location ofa user can be determined.

In this embodiment, one or more of the statistical classifiers 120,heuristic classifiers 122, and behavior-based classifiers 124 arepre-trained from different features (terms) extracted from a trainingdataset comprising a test sample of social networking messages. Thepredictability classifier 126 is pre-trained based on the outputs of thestatistical, heuristic, and behavior-based classifiers being correct orincorrect.

Examples of features that are extracted from social networking messagesfor the statistical classifiers 120 are words, hashtags (or any othermetadata tag), place names (e.g., country, state, county, and citylocation names), and terms that are local to place names. Therefore, inthis embodiment, the statistical classifiers 120 include a classifier202 pre-trained on word features, a classifier 204 pre-trained onhashtag features, and a classifier 206 pre-trained on place-namefeatures, as shown in FIG. 2. These pre-trained classifiers are alsoreferred to as pre-trained statistical models that each comprise a setof pre-defined features associated with a given number of classes, whichis equal to the total number of locations within the training datasetgranularity. For example, if the granularity of the training dataset isat the city level, the total number of classes for the statisticalclassifiers 202, 204, and 206 corresponds to the total number of citiesin the training dataset. The location classification process of thelocation estimator 114 utilizes the statistical models of thestatistical classifiers (as well as the pre-trained models of theheuristic and/or behavior-based classifiers) to identify a home locationof a user based on the features within the messages 116.

Each message in the training dataset is annotated with a locationassociated with the user who generated the message. This annotation canbe generated based on a location given by the actual user. For example,users participating in the training process can provide their homelocation as part of the training process. In another example, theannotation can be generated based on a location from which the socialnetworking message originated. In this example, a bounding box isobtained in terms of latitude and longitude for each city using ageo-coding API. Social networking messages are then recorded using thegeo-tag filter option of a social networking service's streaming API foreach of those bounding boxes until a given number of messages arereceived from a given number of unique users in each location. The citycorresponding to the bounding box where the user was discovered isassumed to be the home location for that user.

During the training process the features of each message in the trainingdataset are inputted into the appropriate classifiers 202, 204, and 206.The home location of the message is also inputted into the classifiers202, 204, and 206. Statistical machine learning processes are thenperformed for each classifier based on these inputs. As a result of thistraining process, a trained statistical model is generated for useduring the location classification process. During training, astatistical model can be generated for each classifier 202, 204, and 206at each level of granularity. Also, the classifiers 202, 204, and 206can be continually trained based on classifications performed during thelocation classification process. While this example of training aclassifier applied to the statistical classifiers 120, the example isanalogously applicable to training the heuristic and behavior-basedclassifiers.

Once the classifiers have been trained, location classification can beperformed. During the location classification process, the locationestimator 114 obtains one or more social networking messages 116associated with one or more given users. FIG. 3 shows exemplary socialnetworking messages 300 obtained by the location estimator 114. Themessage preprocessor 118 processes the social networking messages 116 toextract various features (terms) that are passed to the classifiers 120,122, and 124. To extract these features for the statistical classifiers202, 204, and 206, the message preprocessor 118 performs a tokenizationprocess to generate tokens from the messages 116, while removingpunctuation and other whitespace. Any tokens comprising uniform resourcelocators (URLs) or special characters (e.g., “@”, “?”, and “!”) are thenremoved. However, tokens comprising URLs from location based servicesand tokens representing hashtags (or other metadata tags of interest)starting with “#” (e.g., the token #Portland in FIG. 3) are not removed.

Once the tokens have been extracted, various processes are used toextract features specific to each statistical classifier 202, 204, and206. With respect to the words classifier 202, the message preprocessor118 extracts all words from tokens that are nouns and non-stop words inthis embodiment. The message preprocessor 118 utilizes a parts-of-speechtagging process to identify all words within tokens that are nouns.Adjectives, verbs, prepositions, and the like are not utilized asfeatures for the word classifier 202 of this embodiment because they areoften generic and may not discriminate among locations. The messagepreprocessor 118 also compares words in the tokens to a predefined listof stop words, which are words that are filtered out before or afterprocessing of natural language data (text). Any tokens comprising wordsmatching this list are then removed from the tokens. In this manner, themessage preprocessor 118 of this embodiment only extracts words that arenouns and non-stop words.

With respect to the hashtag classifier 204, the message preprocessor 118identifies/extracts all tokens that start with the # symbol (or anyother symbol of interest). With respect to the place names classifier206, the message preprocessor 118 extracts a set of features that appearin the social networking message 116 and match names of U.S. cities andstates from the geographic data 128. Because not all city or state namesare a single word, the message preprocessor 118 first generates bi-gramsand tri-grams from the tokens (which can be an ordered list). Themessage preprocessor 118 then compares all uni-grams, bi-grams, andtri-grams to the list of city and state names from the geographic data128. Any matching names are used as features for the place namesclassifier 206.

Once the message preprocessor 118 has identified/extracted the set offeatures for a particular statistical classifier, in this embodiment themessage preprocessor 118 identifies which of these features areparticularly discriminative (or “local”) for a location at thegranularity level of interest. For example, the feature “BaseballTeam_A”that is extracted from the fourth social networking messaging in FIG. 3is local to the city “Boston”. The message preprocessor 118 utilizes oneor more heuristics to select local feature from the set of featuresextracted from the messages 116. In this embodiment, the messagepreprocessor 118 computes the frequency of the selected features foreach location and the number of people in that location who have usedthe feature in their social networking messages. The messagepreprocessor 118 keeps the features that are present in the messages ofat least a threshold percentage of people in that location, where thethreshold is an empirically selected parameter (such as 5%). Thisprocess also eliminates possible noisy features.

The message preprocessor 118 then computes the average and maximumconditional probabilities of locations for each feature (term), andtests if the difference between these probabilities is above a thresholdT_(diff). If this test is successful, the message preprocessor 118further tests if the maximum conditional probability is above athreshold T_(max). This ensures that the feature has high bias towards aparticular location. Applying these heuristics allows the messagepreprocessor 118 to identify localized features and eliminates manyfeatures with uniform distribution across all locations. Non-limitingexamples of the above thresholds are T_(diff)=0.1 and T_(max)=0.5. FIG.4 shows exemplary features and their conditional distributions. Theselocal features become features that are inputted into the respectivestatistical classifiers 202, 204, and 206. Therefore, the statisticalclassifiers 202, 204, and 206 are able to receive local terms, as wellas the various features (terms) discussed above.

Each of the extracted features 208, 210, and 212 is then passed to thecorresponding statistical classifier 202, 204, and 206, as shown in FIG.2. Once each statistical classifier 202, 204, and 206 receives thecorresponding features 208, 210, and 212 from the message preprocessor118, each classifier 202, 204, and 206 applies its statistical model tothese features and determines the probability of the user's locationbased thereon. Each classifier then outputs a location classification214, 216, and 218 comprising the location with the highest probabilityof being the location of the user. For example, the words classifier 202outputs a location based on words within a message. The hashtagclassifier 204 outputs a location based on the hashtags within amessage. The place-name classifier 206 outputs a location based on placenames within a message. If local features are used as an input, theseclassifiers 202, 204, and 206 can also output a location based on thelocal terms. The outputs 214, 216, and 218 of these classifiers 202,204, and 206 can be combined to create an ensemble of classifiers thatoutputs a location of the user based on the combination of outputs 214,216, and 218 of the individual classifiers 202, 204, and 206.

In addition to the statistical classifiers 202, 204, and 206, thelocation estimator 114 also utilizes heuristic classifiers 122 thatdetermine/predict users' locations at different granularities. Forexample, FIG. 5 shows a first heuristic classifier 502. This classifier502 is a local-heuristic classifier that is specific to classifying cityor state-level location. The heuristic utilized by this classifier 502is that a user would mention their home city and state in socialmessages such as tweets more often than other cities and states.Therefore, the local-place heuristic classifier 502 receives city andstate terms from messages 116 as input and computes the frequency/countof cities and states mentioned in a given number of messages associatedwith a given user. The local-place heuristic classifier 502 utilizesthis count as the matching score of the given user with the given cityor state. The local-place heuristic classifier 502 outputs a locationclassification 508 comprising the city or state with the highestmatching score as the location of the given user.

A second heuristic classifier 504 is a visit-history heuristicclassifier that is applicable to location classification at allgranularities. The heuristic utilized by this classifier 504 is that auser would visit places in his home location more often than places inother locations. In order to retrieve a user's visit history, themessage preprocessor searches for URLs generated by a location basedservice in a given user's messages (e.g., the second social networkingmessage in FIG. 3 contains one such URL). The message preprocessor 118accesses the content pointed to by the URL and retrieves venue locationinformation (city, state, etc.) associated therewith using one or moreAPIs associated with the location based service. This venue locationinformation 510 is inputted into the visit-history heuristic classifier504, which builds a frequency-based statistic for the visited locationat the desired level of granularity. The visit-history heuristicclassifier 504 outputs a location classification 512 for the usercomprising the location with the highest frequency. The outputs of oneor more of these heuristic classifiers can be combined together, andalso with the outputs of one or more statistical classifiers, to createan ensemble of classifiers, as explained below.

The statistical and heuristic classifiers determine the location of auser based on the content of the user's social networking messages 116.In some embodiments, the location of a user is alternatively oradditionally determined based on the messaging behavior of the user. Thebehavior-based classifier 124 determines the location of a user based onthe time at which the user sends/generates their social network messages116. FIG. 6 shows the average messaging volume per user for each hour ofthe day in the four time zones of the United States (shown in GMT). Fromthis graph 600, the messaging behavior throughout the day has the sameshape in each time zone, with a noticeable temporal offset that theclassifier 124 is able to leverage to predict the time zone of a user.

The behavior-based classifier 124 is configured by dividing the day intoequally-sized time slots of a specified duration. Each time slotrepresents a feature-dimension for the classifier 124. Time slots forthe classifier 124 can be set at any duration and in this example areset at 1-minute durations. For each time slot, the classifier 124 countsthe number of messages sent during that time slot for each user in a setof messages 116. Since total messaging frequency in a day varies acrossusers, the number of messages in a time slot for a user is normalized bythe total number of messages for that user. FIG. 6 shows that thedifferences between messaging volumes in different time zones are notuniform throughout the day. The graph 700 in FIG. 7 shows variations ofstandard deviations of messaging volumes across time zones. Thesevariations mean that different times of day are more discriminative, andthis variation is captured by weighting the feature values of eachtime-slot using the standard deviation for that time slot.

A user's location may not be correctly predictable by a statisticalcontent-based location classifier 120 if the features extracted fromuser's messages do not have enough overlap with the discriminativefeatures used by the trained model of that classifier. This is also truefor the heuristic classifiers 122; a user may not be correctlypredictable if mentions of local-place names or visits to locations donot exist or are not discriminative. Therefore, it is advantageous todetermine whether a user's location can be determined/predicted by thesetypes of classifiers. Also, an ensemble classifier can improve itsaccuracy by eliminating classifiers that cannot provide accuratepredictions for users whose features are less discriminative (for bothstatistical and heuristics classifiers) and less overlapping with thetrained model (for statistical classifiers).

Therefore, in one embodiment, the location estimator 114 utilizes apredictability classifier 126 in conjunction with each locationclassifier 120, 122, and 124. Each predictability classifier 126 has abinary output: predictable or not-predictable. If a user is notpredictable, the location of that user is not predicted using thecorresponding location classifier. Let T denote the set of terms fromuser's messages that would be considered for classification using aparticular classifier. With respect to statistical classifiers 120, thematching location distribution of a term t is the set of locations in atrained model containing that term. If that distribution is not empty,the term is referred to as a matched term. When the matching locationdistribution is computed for all the terms in T, a cumulative matchinglocation distribution is found for the user. For the local-placeclassifier 502, this distribution contains locations from thegeographical data 128 that match content in the user's messages as wellas the frequency of the match. For the visit-history classifier 504,this distribution contains locations from the user's visit history thatappear in the geographical data 128 and the frequency of their visits.As an example, consider the following matching location distribution forthe statistical word-based classifier 202 for a user at the citygranularity: {New York: 20, Los Angeles: 10, Chicago: 5, Dallas: 3,Boston: 6}. Based on this distribution, several metrics are computed touse as features for corresponding predictability classification.

The average classification strength or classification strength for auser is the inverse of the number of matching locations in the matchinglocation distribution. Therefore, the (average) classification strengthis 1/5=0.2 for the above example. The maximum classification strength isthe ratio of the maximum location frequency and the total frequency inthe matching location distribution. For minimum classification strength,the numerator is the minimum location frequency from the samedistribution. Here, the maximum classification strength is20/44=5/11=0.4545 and the minimum classification strength is 3/44=0.068.These three classification strength metrics are used as features for allpredictability classifiers.

The overlap strength of a user is the ratio of the number of matchedfeatures (terms) to the total number of features. For example, if a userhas 100 words identified from social messages (e.g., tweets) and 50 ofthem have a non-empty matching location distribution, then the overlapstrength for the word-based predictability classification will be 1/2.In one embodiment, this feature is only used to train predictabilityclassifiers 126 for the statistical content-based classifiers 120. Toconstruct the labeled data for a predictability classifier 126, thecorresponding location classifier is used. For each user, the locationclassification is generated using that location classifier and thepredictability class label is set based on whether or not thatclassification is correct.

In one embodiment, the individual classifiers 120, 122, and 124 arecombined together to form an ensemble of location classifiers 800, asshown in FIG. 8. In this embodiment, the ensemble of classifiers is aweighted linear ensemble of location classifiers. Let {C₁, C₂, . . . ,C_(a)} be the set of classifiers and Y₁(x_(i)), Y₂(x_(i)), . . .Y_(n)(x_(i)) be the classification produced by each of them, where theinput data is x_(i) and Y_(j)(x_(i)) corresponds to the locationpredicted by jth classifier. In the simplest ensemble approach ofbagging, each classifier receives an equal weight. More complexapproaches such as boosting can also be used. In boosting, weights areautomatically learned based on performance. In this embodiment, theclassifiers are heuristically weighted according to their discriminativeabilities as determined by the classification strength for classifyingthat instance. The location with the highest rank by weighted linearcombination is returned as the result, as shown in FIG. 8.

FIG. 8 shows that each of the statistical classifiers 120, heuristicclassifiers 122, and behavior classifiers 124 outputs multiple locationclassifications. If a predictability classifier 126 determines that auser's location cannot be predicted by one of the classifiers 120, 122,and 124, the predictability classifier 126 prevents this classifier fromgenerating a location classification for one or more messages associatedwith the user. The location classifications generated by the classifiers120, 122, and 124 comprise a location associated with a weight. In theexample of FIG. 8, the statistical classifiers 120 have generated alocation classification L₁ with weight W₁, another locationclassification L₁ with weight W₂, and a location classification L₂ withweight W₃. These location classifications can be generated by a singlestatistical classifier or by multiple statistical classifiers. Theheuristic classifiers 122 have generated a location classification L₃with weight W₄, another location classification L₁ with weight W₅, andanother location classification L₂ with weight W₆. These locationclassifications can be generated by a single heuristic classifier or bymultiple heuristic classifiers. The behavior classifiers have generateda location classification L₄ with weight W₇, another locationclassification L₁ with weight W₈, and a yet another locationclassification L₁ with weight W₉. These location classifications can begenerated by a single behavior classifier or by multiple behaviorclassifiers.

The weights of the location classifications corresponding to the samelocation are combined 802. For example, the weights for locationclassification L₁ are combined; the weights for location classificationL₂ are combined; the weights for location classification L₃ arecombined; and the weights for location classification L₄ are combined.The location classification 804 comprising the highest weight (or lowestdepending on the weighting and/or ranking mechanism) is then outputtedas the location classification for the user.

In some embodiments the weighting heuristic utilizing classificationstrength is not used for the behavior-based classifier 124. In theseembodiments, the following ensemble approach can be utilized. Let TC₁ bethe content based time zone classification and W₁ be the normalizedvalue of the weight associated with it, where W₁is computed as a ratioof the weight associated with classification TC₁ (sum of classificationstrengths for TC₁) and the total value of classification strengthsassociated with content-based classifications. Let TC₂ be theclassification produced by the tweet-behavior classifier and W₂ be theweight associated with the classification TC₂, where W₂ is either theprobability value or the confidence value associated with theclassification TC₂. The classification with higher weight is returned asthe final classification.

For location classification at a smaller granularity (such as citylevel), classifiers discriminate among many locations to generate alocation classification. In one embodiment, this task is simplified bytaking a large classification problem and dividing it up into multiplesmaller classification problems in which the classifiers 120, 122, 124,and 126 are organized in a hierarchy. The initial classifier in such asystem generates a high-level classification (such as for time zone),and lower level classifiers are trained for each of the classes of thehigh-level classifier. The low-level classifier that is used for aparticular instance is determined by the classification of the initialclassifier.

In this embodiment, a location is determined utilizing a two levelhierarchy in which the time zone is the first level of hierarchy. Thelocation estimator 114 classifies between only certain time zones (suchas Eastern, Central, Mountain, and Pacific). An ensemble time-zoneclassifier is trained using all content-based classifiers and thebehavior-based classifier. In this embodiment, city classifiers aretrained for each time zone, with each classifier determining/predictingonly the cities in its time zone and only being trained with examplesfrom that time zone.

FIG. 9 shows an exemplary hierarchical ensemble classifier 900. In thisexample, the first (or top) level comprises a time-zone classifier 902such as the behavior-based classifiers 124. Predictability classifiersare also utilized in some embodiments. The second (or lower) levelcomprises a city classifier 904 such as the statistical and/or heuristicclassifiers 122 and 124 (a hierarchical ensemble classifier is notlimited to only two levels, additional levels for additionalgranularities can be included). The time-zone classifier 902 receivesmessaging behavior features 906 from the messaging preprocessor 118 asinput. In further embodiments, other features that allow for time-zonelocation to be determined are used as input. The time-zone classifier902 processes these features and generates a time-zone locationclassification 908. If multiple time-zone location classifications arebeing determined by the time-zone classifier 902, the classificationwith the highest probability/weight is selected. The city classifier 904processes the time-zone location classification 908 and generates a citylocation classification 908. If multiple city location classificationsare being determined by the time-zone classifier 902, the classificationwith the highest probability/weight is selected as the location of theuser.

In a state-hierarchy configuration, states/territories are used as thefirst level of the hierarchy. The ensemble state classifier includescontent-based classifiers, and city classifiers are built for allstates. In a region hierarchy configuration, geographical regions areutilized as the first level of hierarchy (such as Northeast, Midwest,South, and West), and the regional hierarchical classifiers are builtusing the same basic approach as for the state hierarchical classifiers.

Accordingly, embodiments of the present invention infer the homelocations of social network users at different granularities (such ascity, state, time zone, or geographic region) using the content of theirsocial networking messages and/or messaging behavior. Some embodimentsutilize an ensemble of statistical and heuristic classifiers todetermine/predict locations. Some embodiments utilize a hierarchicalclassification approach for improving prediction accuracy (such as bypredicting time zone, state, or geographic regions first, and thenpredicting city next). A “predictability” classifier is utilized in someembodiments to determine whether enough information is available for agiven user to predict the home location.

FIG. 10 is an operational flow diagram illustrating a process fordetermining the location of a social network user according to oneembodiment of the present invention. The location estimator 114 obtainssocial networking messages 116 generated by a given user, at step 1002.The location estimator 114 extracts location features from each message116, at step 1004. The location estimator 114 passes the extractedfeatures to corresponding classifiers 120, 122, and 124 within anensemble of classifiers 800/900, at step 1006.

A predictability classifier 126 associated with each of the ensemble ofclassifiers 800/900 determines if the location of the given user ispredictable by a given classifier, at step 1008. If the result of thisdetermination is negative, the location estimator 114 prevents thisclassifier(s) from generating a location classification for the givenuser, at step 1010. This location estimator 114 can be prevented fromgenerating a location classification for all messages associated withthe given user or a subset of the messages. If the result of thisdetermination is positive, each classifier processes the correspondingfeatures and generates a weighted location classification for the givenuser, at step 1012. The location estimator 114 combines the weights foreach location classification comprising the same location, at step 1014.The location estimator 114 selects a location classification as thelocation of the given user based on the combined weight associatedtherewith. The control flow then exits. A similar process is performedfor a hierarchical ensemble of classifiers or for single classifiers.

FIG. 11 is a block diagram illustrating an information processing systemthat can be utilized in embodiments of the present invention. Theinformation processing system 1100 is based upon a suitably configuredprocessing system adapted to implement one or more embodiments of thepresent invention (e.g., the user system 102 and/or the server system106 of FIG. 1). Any suitably configured processing system can be used asthe information processing system 1100 in embodiments of the presentinvention.

The information processing system 1100 includes a computer 1102. Thecomputer 1102 has a processor(s) 1104 that is connected to a main memory1106, mass storage interface 1108, and network adapter hardware 1110. Asystem bus 1112 interconnects these system components. Although only oneCPU 1104 is illustrated for computer 1102, computer systems withmultiple CPUs can be used equally effectively. Although not shown inFIG. 11, the main memory 1106 includes the location estimator 114 andits components, as well as, the social networking messages andgeographic data 128. In another embodiment, the location estimator 114can reside within the processor 1104, or be a separate hardwarecomponent.

The mass storage interface 1108 is used to connect mass storage devices,such as mass storage device 1114, to the information processing system1100. One specific type of data storage device is an optical drive suchas a CD/DVD drive, which can be used to store data to and read data froma computer readable medium or storage product such as (but not limitedto) a CD/DVD 1116. Another type of data storage device is a data storagedevice configured to support, for example, NTFS type file systemoperations.

An operating system included in the main memory is a suitablemultitasking operating system such as any of the Linux, UNIX, Windows,and Windows Server based operating systems. Embodiments of the presentinvention are also able to use any other suitable operating system. Someembodiments of the present invention utilize architectures, such as anobject oriented framework mechanism, that allows instructions of thecomponents of operating system to be executed on any processor locatedwithin the information processing system 1100. The network adapterhardware 1110 is used to provide an interface to a network 104.Embodiments of the present invention are able to be adapted to work withany data communications connections including present day analog and/ordigital techniques or via a future networking mechanism.

The flowcharts and block diagrams in the figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the invention. Asused herein, the singular forms “a”, “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises”and/or “comprising,” when used in this specification, specify thepresence of stated features, integers, steps, operations, elements,and/or components, but do not preclude the presence or addition of oneor more other features, integers, steps, operations, elements,components, and/or groups thereof.

Aspects of the present invention may be embodied as a system, method, orcomputer program product. Accordingly, aspects of the present inventionmay take the form of an entirely hardware embodiment, an entirelysoftware embodiment (including firmware, resident software, micro-code,etc.), or an embodiment combining software and hardware aspects that mayall generally be referred to herein as a “circuit”, “module”, or“system.” Furthermore, aspects of the present invention may take theform of a computer program product embodied in one or more computerreadable medium(s) having computer readable program code embodiedthereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a portable compact disc read-only memory (CD-ROM), an optical storagedevice, a magnetic storage device, or any suitable combination of theforegoing. In the context of this document, a computer readable storagemedium may be any tangible medium that can contain, or store a programfor use by or in connection with an instruction execution system,apparatus, or device.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations for aspects of thepresent invention may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java, Smalltalk, C++ or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

Aspects of the present invention have been discussed above withreference to flowchart illustrations and/or block diagrams of methods,apparatus (systems), and computer program products according toembodiments of the invention. It will be understood that each block ofthe flowchart illustrations and/or block diagrams, and combinations ofblocks in the flowchart illustrations and/or block diagrams, can beimplemented by computer program instructions. These computer programinstructions may be provided to a processor of a general purposecomputer, special purpose computer, or other programmable dataprocessing apparatus to produce a machine, such that the instructions,which execute via the processor of the computer or other programmabledata processing apparatus, create means for implementing thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

The description of the present invention has been presented for purposesof illustration and description, but is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the artwithout departing from the scope and spirit of the invention. Theembodiments above were chosen and described in order to best explain theprinciples of the invention and the practical application, and to enableothers of ordinary skill in the art to understand the invention forvarious embodiments with various modifications as are suited to theparticular use contemplated.

What is claimed is:
 1. A method comprising: receiving a plurality ofsocial media messages generated by a given user; extracting a pluralityof location features from the social media messages; processing each ofthe location features with at least one classifier from an ensemble ofclassifiers; generating, by each of the classifiers, a locationclassification for each of the social media messages, each locationclassification comprising a location and a weight associated with thatlocation; and selecting one of the locations from the locationclassifications as the location of the given user based on a combinationof the weights of the location classifications.
 2. The method of claim1, wherein the ensemble of classifiers is a hierarchical ensemble ofclassifiers, and each classifier in a given level of the hierarchicalensemble of classifiers identifies a location at a lower granularitythan each classifier in a higher level of the hierarchical ensemble ofclassifiers.
 3. The method of claim 2, wherein the generating comprises:identifying, by each classifier at a first level of the hierarchicalensemble of classifiers, a time-zone location for the given user; andidentifying, by each classifier at a second level of the hierarchicalensemble of classifiers that is below the first level, a city locationfor the given user based partially on the time-zone location identifiedin the first level.
 4. The method of claim 2, wherein the generatingcomprises: identifying, by each classifier at a first level of thehierarchical ensemble of classifiers, a state location for the givenuser; and identifying, by each classifier at a second level of thehierarchical ensemble of classifiers that is below the first level, acity location for the given user based partially on the state locationidentified in the first level.
 5. The method of claim 2, wherein thegenerating comprises: identifying, by each classifier at a first levelof the hierarchical ensemble of classifiers, a geographical regionlocation associated with the given user; and identifying, by eachclassifier at a second level of the hierarchical ensemble of classifiersthat is below the first level, a city location for the given user basedpartially on the geographical region location identified in the firstlevel.
 6. The method of claim 1, wherein the processing comprisesprocessing subsets of the location features with at least onestatistical classifier, the subsets of location features comprisingterms that are local to a given city, metadata tags, and place names. 7.The method of claim 1, wherein the processing comprises processing asubset of the location features with at least one heuristic classifier,the subset of location features comprising at least one of a frequencyof city names and a frequency of state names in the social mediamessages.
 8. The method of claim 1, wherein the processing comprisesprocessing a subset of the location features with at least one heuristicclassifier, the subset of location features comprising a frequency ofvisited locations that are identified from the social media messagesbased on uniform resource locators within the social media messages. 9.The method of claim 1, wherein the processing comprises processing asubset of the location features with at least one behavior-basedclassifier, the subset of location features comprising a frequency ofsocial media messages generated by the given user for a plurality oftime durations.
 10. The method of claim 1, wherein the processingcomprises: determining, by a binary classifier associated with one ofthe classifiers in the ensemble of classifiers, if a location associatedwith a given user is predictable by the one classifier; and preventingthe one classifier from generating the location classification if thebinary classifier determines that the location is not predictable by theone classifier.
 11. The method of claim 1, wherein the processingcomprises: processing at least one subset of the location features withat least one statistical classifier; processing at least one subset ofthe location features with at least one heuristic classifier; andprocessing at least one subset of the location features with at leastone behavior-based classifier.
 12. The method of claim 11, wherein theprocessing further comprises determining, by a binary classifierassociated with one of the classifiers in the ensemble of classifiers,if a location associated with a given user is predictable by the oneclassifier.